// PROGRAMA: IDCHELP1
// ANALISTA: SOLON MIRANDA
// OBJETIVO: HELP DA TABELA DE CODIGO DAS ANOMALIAS
// DATA : EM 03/04/2006
package br.com.vti.sisp_sicrim.antigo.controller.programa;

import br.com.caelum.vraptor.Post;
import br.com.caelum.vraptor.Path;
import br.com.caelum.vraptor.Resource;
import br.com.caelum.vraptor.Result;
import br.com.vti.sisp_sicrim.antigo.controller.tela.Anomalia;
import br.com.vti.sisp_sicrim.antigo.util.ExceptionProgram;
import br.com.vti.sisp_sicrim.antigo.util.Sessao;

/**
 * Classe : Idchelp1 OBJETIVO: HELP DA TABELA DE CODIGO DAS ANOMALIAS *
 * 
 * @author Incode - Data: mai/2014
 * 
 */
@Resource
@Path("/antigo/idchelp1")
public class Idchelp1 {
	// Views utilizadas
	// Telas/relatorios utilizados
	Anomalia anomalia;
	// Includes utilizados
	// Areas globais / session
	// Funcoes/subrotinas
	FuncoesGerais funcoes = new FuncoesGerais();

	Result result;
	Sessao sessao;
	Boolean primeiraVez = false;
	Idchelp1 idchelp1Anterior;

	// Par�metros

	private Anomalia preMapas() {
		anomalia = new Anomalia(true, sessao);

		return anomalia;
	} // SET CONTROL 'WC18L85B5/01FN'

	public Idchelp1(Result result, Sessao sessao) {
		this.result = result;
		this.sessao = sessao;
	}

	@Post
	public void executar(Anomalia anomalia) {
		try {
			main(anomalia);
		} catch (Exception e) {
			throw new ExceptionProgram(e, sessao, this.getClass().getSimpleName());
		}
	}

	private void main(Anomalia panomalia) {
		if (panomalia == null) {
			primeiraVez = true;
			anomalia = preMapas();
			anomalia.setNavegar("../idchelp1/executar");
			result.include("anomalia", panomalia);
			anomalia.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
			sessao.setAtributo("IDCHELP1", this);
			return;
		} else {
			// retaurar sessao
			restaurarEstados(panomalia);
		}
		anomalia.receberTela(false, result);
		sessao.setAtributo("IDCHELP1", this);
		result.include("anomalia", anomalia);
		anomalia.enviarTela(primeiraVez, result, getClass().getSimpleName().toUpperCase());
	}

	private void restaurarEstados(Anomalia panomalia) {
		this.idchelp1Anterior = (Idchelp1) sessao.getAtributo("IDCHELP1");
		if (panomalia != null) {
			anomalia = panomalia;
		} else {
			anomalia = idchelp1Anterior.anomalia;
		}
		anomalia.setSessao(sessao);

	}
}
